package edu.algo3.algoThief.domain;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class RutaDeEscape {

    private List<Ciudad> ciudadesDeEscape;
    private ArrayList<String> paisesDeEscape;
    
    
	public RutaDeEscape(List<Ciudad> ciudades) 
	{ 
		this.ciudadesDeEscape = ciudades;
		this.setPaisesDeEscape();
	}
    
    // ----------- getters -------------

    public List<Ciudad> getCiudadesDeEscape() 
    {
        return ciudadesDeEscape;
    }
    
    private void setPaisesDeEscape()
    {
    	ArrayList<Ciudad> ciudadesDeEscape = new ArrayList<Ciudad>();
    	ArrayList<String> listaDePaises = new ArrayList<String>();
    	ciudadesDeEscape = (ArrayList<Ciudad>) getCiudadesDeEscape();
    	
    	Iterator<Ciudad> i = ciudadesDeEscape.iterator();
		while(i.hasNext())
		{
			listaDePaises.add(i.next().getPais());
		}	
		paisesDeEscape = listaDePaises;
    }
    
    public ArrayList<String> getPaisesDeEscape()
    {
    	return paisesDeEscape;
    }
    
    public ArrayList<String> getPaisesDeEscapeAGuardar() {
        ArrayList<String> paisesDeEscapeAGuardar = new ArrayList<String>();
        for (Ciudad ciudad : this.ciudadesDeEscape) {
            if (!ciudad.estaVisitada()){
                paisesDeEscapeAGuardar.add(ciudad.getPais());
            }
        }
        return paisesDeEscapeAGuardar;
    }

    // ----------- setters -------------
    
    public void setCiudadesDeEscape(List<Ciudad> ciudadesDeEscape) 
    {
        this.ciudadesDeEscape = ciudadesDeEscape;
    }
    
    // ----------- metodos -------------
    
    

}
